package com.yfp.client.domain.vo;

import com.yfp.client.domain.OrderDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;

import java.sql.Timestamp;
import java.util.List;

/**
 *
 * @version 1.0
 * @date 2024-05-24 16:22
 */
@Data
@Tag(name = "数用户查询订单列表展示")
public class OrderVO {

    /**
     * 订单id
     */
    @Schema(description = "订单id")
    private String orderId;
    /**
     * 用户id
     */
    @Schema(description = "用户id")
    private String userId;
    /**
     * 订单总金额
     */
    @Schema(description = "订单总金额")
    private String price;
    /**
     * 订单状态
     */
    @Schema(description = "订单状态")
    private String status;
    /**
     * 设备id
     */
    @Schema(description = "设备id")
    private String machineId;
    /**
     * 设备名称
     */
    @Schema(description = "设备名称")
    private String machineName;
    /**
     * 设备类型
     */
    @Schema(description = "设备类型")
    private Integer machineType;
    /**
     * 订单创建时间
     */
    @Schema(description = "订单创建时间")
    private Timestamp createTime;
    /**
     * 客服在线状态
     */
    @Schema(description = "客服在线状态")
    private Integer operationalOnlineStatus;
    /**
     * 代取状态
     */
    @Schema(description = "代取状态")
    private Integer replacementState;
    /**
     * 存柜状态
     */
    @Schema(description = "存柜状态")
    private Integer cupboardState;

    @Schema(description = "扫码状态")
    private Integer scannedStatus;
    /**
     * 订单详情列表
     */
    @Schema(description = "订单详情列表")
    private List<OrderDetail> orderDetailList;
    /**
     * 设备详情列表
     */
    @Schema(description = "设备详情列表")
    private DeviceInfoVO deviceInfo;

    @Schema(description = "订单类型（0小程序，1设备,  2企业订单）")
    private String orderType;

    @Schema(description = "截止时间")
    private Timestamp endTime;

    /**
     * 商品类型:[1实体类型、2虚拟类型]
     */
    @Schema(title = "商品类型:[1实体类型、2虚拟类型]")
    private Integer goodsType;
}
